package com.niuke;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

/**
 * 30. 观看文艺汇演问题
 * https://blog.csdn.net/m0_46181452/article/details/131668084
 */
public class NiukeMoni30 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int row = Integer.parseInt(scanner.nextLine()); // 数据行数
        List<int[]> times = new ArrayList<>(); // 每个item是一个长度为2的数组，记录本场开场时间 和 能赶上的下一场时间
        for (int i = 0; i < row; i++) {
            String[] line = scanner.nextLine().split(" ");
            int startTime = Integer.parseInt(line[0]); // 本场开场时间
            int runTime = Integer.parseInt(line[1]); // 本场持续时间
            int[] item = new int[2];
            item[0] = startTime;
            item[1] = startTime + runTime + 15; // 本场结束 + 到下一场的赶路时间15分钟
            times.add(item);
        }

        times.sort(new Comparator<int[]>() {
            @Override
            public int compare(int[] ints, int[] t1) {
                if (ints[0] == t1[0]) {
                    return ints[1] - t1[1]; // 第二个时间也正序排，如果第一个时间相同，dp值直接赋值前一个的就行
                }
                return ints[0] - t1[0];
            }
        });

        int result = 0;
        int[] dp = new int[row]; // 一定观看当前下表场次，所能达到的最大场次
        dp[0] = 1; // 只观看第一场
        result = Math.max(result, dp[0]);

        for (int i = 1; i < row; i++) {
            int[] curr = times.get(i);
            int[] prev = times.get(i - 1);
            if (curr[0] == prev[0]) { // 当前开场时间 == 上场开场时间
                dp[i] = dp[i - 1];
                continue; // 也不用刷新最大值
            }

            for (int j = i; j >= 0; j--) {
                prev = times.get(j);
                if (j == 0 && curr[0] < prev[1]) { // 要看这一场，前面所有的都看不了
                    dp[i] = 1;
                } else {
                    if (curr[0] >= prev[1]) {
                        dp[i] = Math.max(dp[i], dp[j] + 1);
                    }
                }
            }

            result = Math.max(result, dp[i]);
        }

        System.out.println(result);

    }

}
